package com.desksoft.ecommerce.service.interf.mall;

import java.util.List;

import com.desksoft.ecommerce.entity.logistics.dto.Storeitem;
import com.desksoft.ecommerce.entity.mall.dto.Relation;
import com.desksoft.ecommerce.util.result.ServiceResult;
import com.desksoft.ecommerce.vo.logistics.StoreItemVO;
import com.desksoft.ecommerce.vo.mall.ProductsInfo;
import com.desksoft.ecommerce.vo.mall.RelationVO;
import com.desksoft.ecommerce.vo.mall.ServiceTypeDefindVO;
import com.desksoft.ecommerce.vo.mall.WholesalePriceVO;
import com.desksoft.utility.service.ServiceInterface;

public interface IRelationService extends ServiceInterface{

	/**
	 * 根据主商品编码和关联类型id查询关联商品编码
	 * @param relationVO
	 * @return
	 */
	public ServiceResult<List<Relation>> selectRelation (RelationVO  relationVO);
	 
	/**
	 * 根据主商品编码和关联类型id查询关联商品信息
	 * @param whovo
	 * @return
	 */
	public ServiceResult<List<ProductsInfo>> selectProductsInfo(WholesalePriceVO whovo);
	
	
	/**
	 * 修改关联商品的展示顺序
	 * @param relationList
	 * @return
	 */
	public ServiceResult<Boolean> updateRelationSequence (List<RelationVO> relationList);
	
	/**
	 * 修改关联商品单双向关联
	 * @param relation
	 * @return
	 */
	public ServiceResult<Boolean> updateRelationDirectionRelation(RelationVO  relation);
	
	/**
	 * 删除清空关联商品
	 * @param relation
	 * @return
	 */
	public ServiceResult<Boolean> deteleClearAllRelation (RelationVO  relation);
	
	/**
	 * 删除指定关联商品
	 * @param relation
	 * @return
	 */
	public ServiceResult<Boolean> deteleClearRelation (RelationVO  relation);
	
	/**
	 * 保存关联商品
	 * @param relation
	 * @return
	 */
	public ServiceResult<Boolean> insertSaveRelation (List<RelationVO>  lrelation);
	
	/**
	 * 获取大类商品
	 * @param storeItemVO
	 * @return
	 */
	public ServiceResult<List<Storeitem>> selectCategoryDInfo(StoreItemVO storeItemVO);
	
	/**
	 * 获取中类商品
	 * @param storeItemVO
	 * @return
	 */
	public ServiceResult<List<Storeitem>> selectCategoryZInfo(StoreItemVO storeItemVO);
	
	/**
	 * 获取小类商品
	 * @param storeItemVO
	 * @return
	 */
	public ServiceResult<List<Storeitem>> selectCategoryInfo(StoreItemVO storeItemVO);
	
	/**
	 * 获取所有门店的服务商品
	 * @param storeItemVO
	 * @return
	 */
	public ServiceResult<List<Storeitem>> selectMNGTagInfo(StoreItemVO storeItemVO);
	
	/**
	 * 获取所有的服务类型
	 * @param stVO
	 * @return
	 */
	public ServiceResult<List<ServiceTypeDefindVO>> selectServiceTypeDefindVOInfo(ServiceTypeDefindVO stVO);
	
	/**
	 * 统计分类个数
	 * @param relationVO
	 * @return
	 */
	public ServiceResult<List<Relation>> selectCateCount(RelationVO relationVO);
	
	/**
	 * 前台相关商品数据组装
	 * @param relationVO
	 * @return
	 */
	public ServiceResult<List<Relation>> selectRelationItemInfo(RelationVO relation);
}
